Intel EdisonでLCD RGB Backlightを使ってみた
はじめに
弊社のIntel Edisonに関する過去記事はこちらをご参照ください。
今回はIntel EdisonにGrove - LCD RGB Backlightを接続してみました!
やってみた
使ったデバイス
Intel Edison Kit for Arduino + Grove Starter Kitです。Groveのベースシールドは以下のように、Aから始まるアナログポート、Dから始まるデジタルポート、I2Cポートを持っています。
Grove - LCD RGB BacklightをI2Cポートに接続します。またGrove - Light sensorをA0ポートに接続します。
LCD RGB Backlightを使う上での注意点
Grove - ベースシールドには電源電圧を設定するためのピンがあり、初期状態では3.3Vに設定されています。しかしLCD RGB Backlightに文字を表示するためには、5Vに設定する必要があります。3.3Vのままだとバックライトは光りますが文字が表示されません(ハマりました)
XDKで書いたコード
var mraa = require("mraa"); // LCD Classを定義 var LCD = require("jsupm_i2clcd"); // LCDを初期化。0x3EはLCD_ADDRESS,0x62はRGB_ADDRESS。 var myLCD = new LCD.Jhd1313m1(6, 0x3E, 0x62); // A0に接続されたLight Sensorを定義 var LightSensor = new mraa.Aio(0); setInterval(function () { var a = LightSensor.read(); // バックライト色を指定 myLCD.setColor(100, 255, 100); // 配置(row,clumn)を指定 myLCD.setCursor(0,0); // LCDに書き出し myLCD.write("Light: " + a); }, 1000);
試してみる
以下のように、Light Sensorを手で握り光を当たらなくするとLCDの数値が減り、手を開いて光を当てるとLCDの数値が増えます。
バックライト色を変えてみる
myLCD.setColorはバックライトの色を指定します。引数はRed,Green,BluedBlueです。
myLCD.setColor(255, 0, 0);
myLCD.setColor(0, 255, 0);
myLCD.setColor(0, 0, 255);
myLCD.setColor(255, 255, 255);
カーソルを変えてみる
myLCD.setCursorはカーソルの場所を指定します。引数はRow,Columnです。
例えば以下のようなコードを書きます。
var mraa = require("mraa"); var LCD = require("jsupm_i2clcd"); var myLCD = new LCD.Jhd1313m1(6, 0x3E, 0x62); var clearStr = " " var i = 15; setInterval(function () { myLCD.setColor(255, 255, 255); myLCD.setCursor(0,0); myLCD.write(clearStr) myLCD.setCursor(0,i); myLCD.write("S"); if(i == 0){ i = 15; } else { i--; } }, 1000);
これを実行すると、文字Sが右から左にずれていきます。
さいごに
個人的に、こういう電子工作物で一番「動いている感」があって好きなのがLCDなので、楽しかったです。